import {IState} from '../../types'
import {ActionContext} from 'vuex'
export default{
    namespaced:true,
    state():IState{
        return{
            count:0
        }
    },
    mutations:{
        /*
            mutations选项中的方法都有两个参数
            参数1：state对象
            参数2：外部传递的数据
        */
        increment(state:IState,n:number){
            state.count+=n
        }   
    },
    actions:{
        /*
            actions选项是为了完成异步操作,这个选项中的方法都有两个参数
            参数1：表示是上下文对象
            参数2：表示的是外部传递的参数
        */
        incrementAsync(cxt:ActionContext<IState,any>,n:number){
            setTimeout(() => {
                cxt.commit('increment',n)
            }, 1000);
        }
    }
}